SQL Operatoren
Probleem
We willen niet alleen rijen kunnen selecteren gebaseerd op één kolom die gelijk is aan een bepaalde waarde. We moeten ook complexere voorwaarden kunnen opstellen. Daarom beschikken over we een hele reeks operatoren die we bovendien kunnen combineren.
Oplossing
Een voorwaarde is een logische uitdrukking waarvan de waarde TRUE of FALSE is. Ze wordt opgebouwd met
- de logische operatoren
AND
,OR
enNOT
- de vergelijkingsoperatoren
=, <, >, <=, >=
en<>
(verschillend, niet gelijk); - wildcards (
%, _, []
) - andere operatoren zoals
LIKE
,IN
enBETWEEN
Het gebruik van de ronde haakjes ( ) dient om de volgorde van de evaluatie van de operatoren te bepalen.
Het interpreteren van select opdrachten is niet altijd direct duidelijk. Als je baas je vraag je vraagt om alle boeken te selecteren die door Brusselmans zijn geschreven en alle boeken die door Hawkins zijn geschreven.
Is dat hetzelfde of anders dan de opdracht: selecteer alle boeken die door Brusselmans en door Hawkins zijn geschreven?
Welke logische operator gebruik je voor de eerste select, en welke logische operator gebruik je voor de tweede select?
Als iemand bij je thuis op bezoek komt en je vraag haar of ze koffie of thee wil drinken, over welke of gaat het? Is het beleefd om te antwoorden koffie en thee?
Waarheidstabellen kunnen helpen de juiste select te maken:
De of tabel:
|
|
koffie |
|
|
OR |
TRUE |
FALSE |
thee |
TRUE |
True |
True |
|
FALSE |
True |
False |
De exclusieve of of xor tabel:
|
|
koffie |
|
|
XOR |
TRUE |
FALSE |
thee |
TRUE |
False |
True |
|
FALSE |
True |
False |
De en tabel:
|
|
koffie |
|
|
AND |
TRUE |
FALSE |
koffie |
TRUE |
True |
False |
|
FALSE |
False |
We gaan die operatoren nu in detail bekijken.